package database;

import java.util.ArrayList;
import database.node.*;

@SuppressWarnings("serial")
public class UniversalRelation extends ArrayList<ListNode> {
	
	/**
	 * tìm xem trong indexRelation có indexAtt hay ko?
	 * nếu có thì trả về Node có chứa indexAtt đó.
	 * nếu ko thì trả vè null
	 * @param indexAtt
	 * @param indexRelation
	 * @return
	 */
	public Node findAttribute(int indexAtt, int indexRelation) {
		for (ListNode list : this) {
			if(list.indexRelation == indexRelation) {
				return list.findAttribute(indexAtt);
			}
		}
		return null;
	}

//        public Node findAttribute(int indexAtt, int indexRelation) {
//                return this.get(indexRelation).findAttribute(indexAtt);
//	}
	
	/**
	 * hàm này sẽ trả về index của tập đồng nghĩa trong tập vụ trụ.
	 * @param listSyn
	 * @return
	 */
	public int getIndexListSynonymAtt(String [] listSyn) {
		int index = 0;
		boolean isFinish = false;
		for(int i = 0; i < this.size() && !isFinish; i ++) {
			index = this.get(i).findIndexOfListSynAttribute(listSyn);
			if(index > 0) {
				isFinish = true;
			}
		}
		return index;
	}

	public int getIndexOfAttribute(String attName) {
		for(ListNode list : this) {
			for(Node n : list.listAttribute) {
				if(n.attName.equals(attName)) {
					return n.index;
				}
			}
		}
		return 0;
	}
}
